perm filename NOO.FAI[TMP,LCS] blob
sn#166889 filedate 1975-07-05 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00009 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE OO
C00004 00003 MVM: HRLI OU,400000(MA)
C00008 00004 BACK: HRRZI 6,-2(CX)
C00011 00005 GETO: MOVEM EN,TMP
C00014 00006 INDER: HRRZ 6,(P)
C00016 00007 PTBEG: SKIPN PTNUM
C00017 00008 FILIN: OPEN DEVN
C00019 00009 INTRU: MOVE EN,JOBCNI
C00021 ENDMK
C⊗;
TITLE OO
EXTERNAL JOBAPR,JOBTPC,JOBCNI,JOBFF,JOBREL,JOBDDT,$I
FL←4 ↔ EN←7 ↔ TS←10 ↔ OU←11 ↔ CX←13
MA←14 ↔ N←15 ↔ P←17 ↔ MEM←17000
INT: HRRZI EN,INTRU
HRRZM EN,JOBAPR
HRRZI EN,MEM+1
HRRM EN,INTY
HRRZI EN,MEM+200
CORE EN,
HALT
RST: RESET
SETZM PTNUM
MOVE P,PDPO
MOVE EN,IPC
INTENB EN,
LOOP: OUTSTR CRLF
PUSHJ P,INTY
HRRZI FL,(EN)
TRZN EN,600
SUBI TS,4
PUSHJ P,TABL(EN)
PUSHJ P,EVAL
HRRM TS,INTY
PUSHJ P,GETO
JRST LOOP+1
EVAL: HRRZI MA,1
HRRZI CX,(N)
JRST BGIN
INTY: HRRZI N,MEM+1
HRRZI TS,(N)
OUTSTR ASTR
IWAIT
INCHRS EN
JRST .-2
INLIN: HRRZM EN,(TS)
SETZM 1(TS)
ADDI TS,2
INCHRS EN
CAIA
JRST INLIN
SKIPGE OU,LITFL
JRST RETRN
CAIE EN,(OU)
JRST INTY+3
SETOM LITFL
RETRN: OUTSTR SPACE
POPJ P,
MVM: HRLI OU,400000(MA)
HRRZI 6,2
JRST LMVM
LAEQ: HRRZI 6,2
CAIE OU,(MA)
ADDI 6,2
SUBI 5,2
HLL OU,(5)
LMVM: MOVEM OU,(5)
SETZM 1(5)
ADDI 5,2
SUBI TS,(6)
ADDI 6,(5)
HRLZI 6,(6)
HRRI 6,(5)
BLT 6,(TS)
JRST LKMO
FDEQ: MOVE 4,MEM(MA)
HRRZI 5,(N)
LKMO: CAMN 4,(5)
JRST EQU
ADIN: ADDI 5,2
CAIGE 5,(TS)
JRST LKMO
ADDI MA,2
BGIN: CAIGE MA,-MEM(N)
JRST FDEQ
HRRZI MA,-MEM(CX)
ADDI N,2
CAIGE N,(TS)
JRST FDEQ
JRST BACK
EQU: HRRZI OU,(MA)
CAILE TS,2(5)
CAIG N,MEM+2(MA)
JRST CKLA
MOVE 6,MEM+2(MA)
CAMN 6,2(5)
HRRI OU,2(MA)
CKLA: CAIL 5,2(N)
SKIPL 6,-2(5)
JRST .+3
CAIN MA,2(6)
JRST LAEQ
CAIE OU,(MA)
JRST MVM
SKIPL 1(5)
SKIPN 6,MEM+1(OU)
JRST ADIN
TRNN 6,777777
JRST REPIN
DOUT: HRLI OU,400001(OU)
AOJ OU,
MOVEM OU,1(5)
CAIGE CX,-2(TS)
JRST ADIN
BACK: HRRZI 6,-2(CX)
ADDI 6,2
SKIPGE 1(6)
JRST NEGA+1
SKIPGE OU,(6)
AOBJN OU,NEGA
HRRZI OU,-MEM(6)
HRLI OU,400000(OU)
NEGA: MOVEM OU,1(6)
CAIGE 6,-2(TS)
JRST BACK+1
CAIE TS,2(CX)
JRST NOT1
SUBI TS,2
MOVE EN,(TS)
SUB OU,ONEB
CAME OU,EN
CAIN CX,MEM(OU)
AOBJN OU,NEW1
SKIPL FL,SAVFLG
AOBJN OU,FIXIT
HRRZI EN,MEM+1(OU)
ADD OU,ONEB
POPJ P,
NEW1: SKIPGE FL,SAVFLG
POPJ P,
HRRZI OU,-MEM+1(CX)
HRLI OU,400000(OU)
JRST ADTS
NOT1: HRRZI EN,-MEM-2(TS)
HRLI EN,400000-MEM(CX)
MOVE OU,EN
ADD OU,ONEB
SKIPGE FL,SAVFLG
POPJ P,
MOVEM EN,(TS)
MOVEM OU,1(TS)
HRRZI OU,-MEM+1(TS)
HRLI OU,400000(OU)
ADTS: ADDI TS,2
FIXIT: SKIPL EN,TMP
JRST CKFLS
MOVEM EN,(TS)
HRRZI EN,1(TS)
ADDI TS,2
CKFLS: TRZ FL,600
PUSHJ P,TABL(FL)
SETOM SAVFLG
POPJ P,
GETO: MOVEM EN,TMP
HRRZI MA,(TS)
HRLI MA,700
SKIPE PTNUM
HRLI MA,1100
ADDI TS,200
TLZN OU,400000
TRNN OU,400000
JRST GOUT
MOVE EN,OU
HRRZI 4,777775
JRST MKOUT
PUDO: HRLI OU,(4)
PUSH TS,OU
MOVE OU,EN
GOUT: HLRZ 4,OU
MOR: MOVE EN,MEM(4)
TLZE EN,400000
JRST PUDO
TRNN EN,400000
JRST DPCH
MKOUT: HLRZ 6,EN
HRLI EN,(EN)
TRZ EN,400000
MOVEM EN,MEM(6)
CAIA
DPCH: IDPB EN,MA
ADO: ADDI 4,2
CAIG 4,(OU)
JRST MOR
TLNN TS,777777
JRST TYOUT
POP TS,OU
HLRZ 4,OU
JRST ADO
TYOUT: HRRZI EN,15
IDPB EN,MA
HRRZI EN,12
IDPB EN,MA
SETZ EN,
IDPB EN,MA
SUBI TS,177
SKIPE PTNUM
JRST PTOUT
OUTSTR (TS)
POPJ P,
INDER: HRRZ 6,(P)
CAIG 6,FIXIT
JRST FIXTS
MOVEM OU,(EN)
POPJ P,
FIXTS: SUBI TS,2
HRRZM EN,SAVFLG
OUTSTR CRLF
POPJ P,
STLIT: IWAIT
INCHRS LITFL
JRST .-2
SUBI TS,2
SUB P,ONEB
JRST INTY+4
REPIN: HLRZ 6,6
HRRZI OU,(6)
MOVE 6,MEM(6)
MOVEM 6,(5)
JRST DOUT
LITA: HRRZ 6,(P)
CAIG 6,FIXIT
JRST FIXTS
SUB OU,ONEB
MOVEM OU,(EN)
POPJ P,
RPLACE: HRRZ 6,(P)
CAIG 6,FIXIT
JRST FIXTS
HRR OU,MEM(OU)
TLZ OU,400000
TRO OU,400000
MOVEM OU,(EN)
POPJ P,
BECOMS: HRRZ 6,(P)
CAIG 6,FIXIT
JRST FIXTS
SOJ OU,
HRLZM OU,(EN)
POPJ P,
ADER: HRRZ 6,(P)
CAIG 6,FIXIT
JRST FIXTS
MOVE 4,MEM-1(OU)
MOVEM 4,2(TS)
CAIE TS,1(OU)
JRST OLD1
SUBI TS,2
MOVE OU,(OU)
OLD1: MOVEM OU,3(TS)
MOVE 5,(EN)
MOVE 4,MEM-1(5)
MOVEM 4,(TS)
MOVEM 5,1(TS)
HRRZI OU,-MEM+2(TS)
HRLI OU,400000-MEM(TS)
MOVEM OU,4(TS)
AOBJP OU,
MOVEM OU,5(TS)
HRRZI OU,-MEM+5(TS)
HRLI OU,400000(OU)
MOVEM OU,(EN)
ADDI TS,6
POPJ P,
PTBEG: SKIPN PTNUM
PTYGET FL
POPJ P,
MOVEM FL,PTNUM
HRRZI 5,5
PTJOBX FL
POPJ P,
POPJ P,
PTEND: SETZM PTNUM
RESET
POPJ P,
PTCALL: HRRZI TS,CALLC
PTOUT: MOVE EN,PTNUM
PTWRS9 EN
POPJ P,
DDJMP: JSR $I
POPJ P,
TABL: REPEAT 72,{POPJ P,
}
JRST INDER
REPEAT 4,{POPJ P,
}
JRST DDJMP
POPJ P,
JRST ADER
JRST BECOMS
JRST PTCALL
REPEAT 2,{POPJ P,
}
JRST FILIN
REPEAT 4,{POPJ P,
}
JRST PTEND
JRST LITA
REPEAT 2,{POPJ P,
}
JRST FILO
JRST PTBEG
POPJ P,
JRST RPLACE
REPEAT 54,{POPJ P,
}
FILIN: OPEN DEVN
JRST ERRO
SETZM FNAME+3
LOOKUP FNAME
JRST ERRO
MOVE EN,INPO
SETZ TS,
INPUT EN
HRRZ EN,MEM
HRRZI N,MEM(EN)
HRRM N,INTY
CORE N,
JRST ERRO
SUBI EN,200
JUMPLE EN,CLOZE
IORI EN,177
MOVNS EN
HRLZI EN,-1(EN)
HRRI EN,MEM+177
INPUT EN
JRST CLOZE
ERRO: OUTSTR QMARK
JRST CLOZE
FILO: SUBI N,MEM
HRRZM N,MEM
IORI N,177
MOVNS N
HRLZI N,-1(N)
HRRI N,MEM-1
OPEN DEVN
JRST ERRO
SETZM FNAME+3
ENTER FNAME
JRST ERRO
SETZ 16,
OUTPUT N
CLOZE: RELEAS
SUB P,ONEB
JRST LOOP
INTRU: MOVE EN,JOBCNI
TLNE EN,20000
DISMIS
IMSKCL 1,EN
MOVE OU,JOBTPC
TRNE EN,20000
JRST CORUP
CAIE OU,.+7
MOVEM OU,IPC+1
UWAIT
DEBREAK
HRRZ 1,PTNUM
POLO: PTOCNT 1
SKIPG 2
INTJEN IPC
HRRZI 2,PTNUM+2
PTRDS 1
OUTSTR (2)
JRST POLO
CORUP: SOJ OU,
MOVEM OU,IPC+1
UWAIT
DEBREAK
HRRZ 1,JOBREL
AOJ 1,
CORE 1,
JRST DDJMP
INTJEN IPC
PDPO: IOWD 100,,PDL
PDL: BLOCK 100
IPC: 21000,,20000 ↔ 0
DEVN: 17 ↔ SIXBIT/DSK/ ↔ 0
FNAME: SIXBIT/ALY/ ↔ SIXBIT/OOP/ ↔ BLOCK 2
INPO: IOWD 200,MEM ↔ QMARK: 45767706424
CRLF: 64240,,0 ↔ ASTR: ASCIZ/*/
SPACE: ASCIZ/ / ↔ CALLC: 600600,,0
SAVFLG: -1 ↔ LITFL: -1
ONEB: 1,,1 ↔ TMP: 0
PTNUM: 0 ↔ BLOCK 400
END INT